package modelo;

import vistas.JFProducto;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class ProductoDAO {

	private JFProducto ventana;
	
	public ProductoDAO() {
		super();
		ventana= new JFProducto();
	}
	
	public void InsertarProductoIngrediente(String codigop, String codigo, String cantidad )
	{
			
		String SQL = "INSERT INTO ingredienteproducto "+
		 "(codingrediente, "+"codproducto, "+"cantingrediente) "+
		 "VALUES "+ "('"+codigo+"',"+"'"+codigop+"',"+"'"+cantidad+"')";
          Conexion.ejecutar(SQL);
	}
	
	
	public void Insertar(Producto producto)
	
	{
			
		String SQL = "INSERT INTO producto "+
		 "(codproducto, "+"descripcionproducto, "+"precioventa, "+"categoriaproducto) "+
		 "VALUES "+ "('"+producto.getCodProducto()+"',"+"'"+producto.getDescripcionProducto()+"',"+"'"+producto.getPrecioProducto()+"',"+"'"+producto.getCategoriaProducto()+"')";
          Conexion.ejecutar(SQL);
	}
	
	public void Eliminar(Producto producto){
		String SQL = "DELETE FROM producto WHERE codproducto ='"+ producto.getCodProducto()+"'";
		System.out.print("aqui");
	    Conexion.ejecutar(SQL);
	}

	
	public Producto consultarProducto(String codigoProducto) {
		String tiraSQL = new String(); 
		Producto productoconsultado =null;
		
		tiraSQL = "SELECT * FROM producto where codproducto = '"+codigoProducto+"'" ;
		ResultSet resultSet = Conexion.consultar(tiraSQL);	

		try {
			if (resultSet.next())
			{ 
				String codigo = resultSet.getString("codproducto");
				String nombre = resultSet.getString("descripcionproducto");
				String categoria = resultSet.getString("categoriaproducto");
				String preciov = resultSet.getString("precioventa");
			    productoconsultado = new Producto(codigo,nombre,categoria,preciov);
			}		
				
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return productoconsultado;
																																																					
	}
	
	public void actualizar(Producto producto, String codigoproducto)
	{
																									
		String tiraSQL = "UPDATE producto SET  descripcionproducto ='" + producto.getDescripcionProducto()+ "', precioventa = '" + producto.getPrecioProducto()+ "',categoriaproducto= '" + producto.getCategoriaProducto()+"' WHERE codproducto = '" + producto.getCodProducto()+"'";
		Conexion.ejecutar(tiraSQL);
	
	}
	
	public List<String> consultarCategoria() 
	{
		List<String> categoria = new ArrayList<String>();
		String tiraSQL = "SELECT nombrecategoria FROM categoria";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) 
			{
				String nombre = resultSet.getString("nombrecategoria");
				categoria.add(nombre);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return categoria;
	}
	
	public List<String> consultarIngrediente() 
	{
		List<String> ingrediente = new ArrayList<String>();
		String tiraSQL = "SELECT nombreingrediente FROM ingrediente";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) 
			{
				String nombre = resultSet.getString("nombreingrediente");
				ingrediente.add(nombre);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return ingrediente;
	}
	
	public String BuscarCodigo(String nombre){
		String codig = new String();
		
		String tiraSQL = "SELECT codingrediente FROM ingrediente WHERE nombreingrediente = '"+nombre+"'" ;
		ResultSet resultSet = Conexion.consultar(tiraSQL);	
		try {
			while (resultSet.next()) 
			{
				codig = resultSet.getString("codingrediente");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return codig;
	}
	
	public List<String> consultarProduc() 
	{
		List<String> producto = new ArrayList<String>();
		String tiraSQL = "SELECT categoriaproducto,descripcionproducto FROM producto";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) 
			{
				String nombre = resultSet.getString("descripcionproducto");
				String cate=resultSet.getString("categoriaproducto");
				String valor= cate + "  "+ nombre;
				producto.add(valor);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return producto;
	}
	
}
